//
// Created on 2024/9/12.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef OHOS_DEMO_NJS_RTC_CLIENT_H
#define OHOS_DEMO_NJS_RTC_CLIENT_H
#include "rtc_client/rtc_client.h"
#include "rtc_client/nativecpp/rtc_client_native.h"

#include <string>

// use for arkts and c++ interface
namespace ohosrtc {
class NJSRtcClient {
  public:
	  NJSRtcClient(std::string room_url, std::string room_id, std::function<void()> callback, bool use_native);
	  void Connect();
	  void Disconnect();
	  void SetRemoteRender(std::string render_id);
	  void SetLocalRender(std::string render_id);
	  void StartScreenCast();
	  void StopScreenCast();
    void FlipCamera(bool is_front);
    void MuteMic();
	  void UnMuteMic();
  
	private:
		std::string room_url_;
		std::string room_id_;
		RTCClientInterface* client_;
    std::function<void()> callback_;
    bool use_native_;
};
}
#endif //OHOS_DEMO_NJS_RTC_CLIENT_H
